Computer users frequently encounter an overwhelming amount of information when trying to use a computer. A data provider such as an Internet search engine may return thousands of "hits" in response to a simple query. A data provider for an email archive may show hundreds of messages which must be scrolled through to find a single one. A computer file directory tree may list tens of thousands of documents in confusing layers. FIG. 1A shows a computer system with a different interface 200, 202, 204, 206, 208 for each data provider 210, 212, 214, 216, 218.
To compound the difficulty of accessing this volume of information, data providers do not use a standard user interface. Instead of learning one versatile user interface, a user must become proficient in multiple user interfaces, a time-consuming and frustrating task.
The lack of a standard user interface creates extra work for software developers, who must design a different interface for each data provider. For example, in a windowed environment, a software developer must design a new control with different tabs, buttons, and overall configuration in order to satisfy the requirements of each data provider.
Existing user interfaces allow filtering of data sets based on multiple attributes at one time. But it is not always apparent from looking at a user interface how this is to be accomplished. For example, a user interface might support precision filtering using multiple attributes of a data set only if the user possesses advance knowledge of the data set's attributes or query language. No standard user interface allows precise filtering of a data set on multiple attributes in an intuitive fashion.
A user interface can issue even more precise queries on a data set by supporting multiple comparison modes for each query term. For example, the AutoFilter feature of Microsoft Excel 97 supports multiple comparison modes for a query term. AutoFilter allows the user to specify how the query term is to be compared to the data set. One drawback of the AutoFilter implementation is that the user specifies the comparison mode in a dialog box apart from the main user interface.
Iterative related queries are frequently issued by users attempting to successively filter enormous quantities of data down to manageable amounts. For example, a user who issues a simple query to an Internet search engine may receive thousands of "hits" in response. The user may then issue a narrower query to find a subset within these responses. The narrower query is typically the original query+another term.
Enormous redundancy results when the modified query is executed on the entire data set rather than the narrower set returned in response to the first query. A lesser redundancy results when the complete set of query terms rather than just the changes to the query terms are passed between the user interface and the data provider. These redundancies lead to a lack of appealing visual feedback in a user interface and cause slow response time in filtering a data set.
Rather than showing a data set "shrinking" as further criteria are input, most existing user interfaces send a query only after the user has explicitly indicated that formulation of the query is completed. For example, a user types a query and then presses &lt;Enter &gt; to send the query. The disadvantage of this method is that the visual impact of seeing the data set shrink, as input is entered, is lost.
Accordingly, some existing user interfaces filter after each keystroke of textual input is entered. For example, many Applications have Help Indexes which are traversed as each keystroke is entered. If the user needs help with the "display," the user types "d" and the index jumps to "d." When the user types "i," the index jumps to "di," etc. The disadvantage of this method is that a filtering system sometimes gets bogged down if filtering large data sets; responsiveness and visual performance suffer.
A further disadvantage of existing user interfaces is that they do not enable non-textual filtering of data sets. Instead, data sets are sorted according to arbitrary patterns of text or exact values of text, even if the user is searching for a color, icon, bitmap, or sound in a data set.
The preferred embodiment of the present invention overcomes the shortcomings of the prior art by providing a standard user interface through which a user can effectively and intuitively interact with an unfamiliar data provider.